Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 << zurück
Visual C# 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2005

Visual C# 2005
1.320 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-586-X
gp Kapitel 4 Das Klassendesign (Teil 1)
  gp 4.1 Einführung in die Objektorientierung
    gp 4.1.1 Das objektorientierte Paradigma
    gp 4.1.2 Vorteile der objektorientierten Programmierung
    gp 4.1.3 Zusammenfassung
  gp 4.2 Die Klassendefinition
    gp 4.2.1 Die Deklaration von Objektvariablen
    gp 4.2.2 Zugriffsmodifizierer einer Klasse
    gp 4.2.3 Der Projekttyp »Klassenbibliothek«
    gp 4.2.4 Splitten einer Klassendefinition mit »partial«
    gp 4.2.5 Zusammenfassung
  gp 4.3 Objektmethoden
    gp 4.3.1 Der Aufruf einer Methode
    gp 4.3.2 Methoden mit Parameterliste
    gp 4.3.3 Rückgabewert einer Methode
    gp 4.3.4 Variablen in einer Methode
    gp 4.3.5 Zugriffsmodifizierer einer Methode
    gp 4.3.6 Besondere Aspekte einer Parameterliste
    gp 4.3.7 Referenz- und Wertparameter
    gp 4.3.8 Methodenüberladung
    gp 4.3.9 Aufruf überladener Methoden mit impliziter Konvertierung
    gp 4.3.10 Zusammenfassung
  gp 4.4 Objekteigenschaften
    gp 4.4.1 Datenkapselung mit Eigenschaftsmethoden sicherstellen
    gp 4.4.2 Die Ergänzung der Klasse »Circle«
    gp 4.4.3 Lese- und schreibgeschützte Eigenschaften
    gp 4.4.4 Sichtbarkeit der Accessoren »get« und »set«
    gp 4.4.5 Konstanten
    gp 4.4.6 Methode oder Eigenschaft?
    gp 4.4.7 Die Trennung von Daten und Code
    gp 4.4.8 Der Zugriff auf private Daten
    gp 4.4.9 Zusammenfassung
  gp 4.5 Konstruktoren
    gp 4.5.1 Die Konstruktoren in der Klasse »Circle«
    gp 4.5.2 Die Konstruktoraufrufe
    gp 4.5.3 Definition von Konstruktoren
    gp 4.5.4 »internal«-Konstruktoren
    gp 4.5.5 »private«-Konstruktoren
    gp 4.5.6 Konstruktorverkettung
    gp 4.5.7 Zusammenfassung
  gp 4.6 Der Destruktor
    gp 4.6.1 Das Zerstören von Objekten
    gp 4.6.2 Der Garbage Collector
    gp 4.6.3 Die Bereitstellung eines Destruktors
    gp 4.6.4 Das Zerstören eines Objekts
    gp 4.6.5 Die »Dispose«-Methode
    gp 4.6.6 Der Garbage Collector in Aktion
    gp 4.6.7 Zusammenfassung
  gp 4.7 Arbeiten mit Objektreferenzen
    gp 4.7.1 Prüfen auf Initialisierung
    gp 4.7.2 Die Deklaration vom Typ »Object«
    gp 4.7.3 Mehrere Referenzen auf ein Objekt
    gp 4.7.4 Den Typ einer Objektreferenz mit »ToString« ermitteln
    gp 4.7.5 Der »is«-Operator zur Typfeststellung
    gp 4.7.6 Referenzvergleiche
    gp 4.7.7 Das Klonen von Objekten
    gp 4.7.8 Zusammenfassung


Galileo Computing

4.2 Die Klassendefinition  downtop

Eine Klasse ist die grundlegendste Einheit der objektorientierten Programmierung und dient dazu, einen Datentyp zu definieren. Wir wollen uns daher zunächst diesem Thema widmen.

Starten Sie ein neues Projekt vom Typ »Konsolenanwendung«, ist die Struktur einer Klasse bereits vordefiniert. Der Quellcode befindet sich in einer Datei mit der Dateierweiterung .CS, der Dateibezeichner entspricht dem Namen der Klasse. In dieser Quellcodedatei können Sie auch noch weitere Klassen definieren. Möchten Sie die neue Klasse jedoch in einer zusätzlichen Quellcodedatei implementieren, haben Sie zwei Alternativen:

gp  Sie wählen im Menü Projekt der Entwicklungsumgebung das Untermenü Klasse hinzufügen...
gp  Sie öffnen mit der rechten Maustaste das Kontextmenü des Projekts im Projektmappen-Explorer, wählen Hinzufügen und danach aus der sich anschließend öffnenden Liste Klasse hinzufügen...

Daraufhin öffnet sich das Dialogfenster Neues Element hinzufügen (siehe Abbildung 4.4).

Abbildung
Hier klicken, um das Bild zu vergrößern

Abbildung 4.4   Der Dialog »Neues Element hinzufügen«

Die Vorlage »Klasse« ist bereits vorselektiert. Sie sollten jetzt nur noch einen möglichst beschreibenden Klassennamen wählen, der auch gleichzeitig zum Namen der Quellcodedatei wird. Wenn Sie wollen, können Sie später sowohl die Klasse als auch die Quellcodedatei umbenennen.

Zur Bezeichnung von Klassen gibt es Konventionen, an denen Sie sich orientieren sollten:

gp  Der Name einer Klasse sollte immer ein Nominativ oder an ein solches angelehnt sein. Der erste Buchstabe sollte großgeschrieben werden. Setzt sich der Name einer Klasse aus mehreren einzelnen Begriffen zusammen, wird empfohlen, zur besseren Lesbarkeit jeden Begriff mit einem Großbuchstaben zu beginnen.
gp  Ein Klassenname sollte nicht dadurch kenntlich gemacht werden, dass ihm ein »C« oder ein anderes Präfix vorangestellt wird, wie es in anderen objektorientierten Sprachen teilweise üblich ist. Generell sollte auch auf einen Unterstrich im Typnamen verzichtet werden.

Erscheint Ihnen der Name der Quellcodedatei zu einem späteren Zeitpunkt unpassend, können Sie

gp  im Projektmappen-Explorer das Kontextmenü der entsprechenden Datei öffnen, Umbenennen wählen und den neuen Namen eingeben oder
gp  im Projektmappen-Explorer die umzubenennende Datei selektieren und im Eigenschaftenfenster unter Dateiname den neuen Namen eintragen.

Nehmen wir an, dass Sie eine Klasse namens Circle entwickeln wollen und für diese eine neue Quellcodedatei vorsehen. Nachdem die Datei hinzugefügt worden ist, wird die folgende Klassenstruktur im Codeeditor angezeigt:


namespace CircleApplication
{
   public class Circle 
   {
   }
}

Verglichen mit der Klasse, die man beim Starten einer Konsolenanwendung erhält, ist nun keine Main-Methode vordefiniert. Das ist sinnvoll, denn Main dient als Einstiegspunkt in die Laufzeit einer Anwendung, und da darf es natürlich nur einen geben (was Sie letztendlich auch nicht davon abhalten kann, dennoch eine weitere Methode Main zu bezeichnen).


Galileo Computing

4.2.1 Die Deklaration von Objektvariablen  downtop

Eine Klassendefinition beschreibt den Bauplan eines Objekts und gilt als Typdefinition. Um ein Objekt eines bestimmten Typs zu erzeugen, muss zunächst für jedes Objekt eine Objektvariable deklariert werden, beispielsweise:


Circle meinKreis;

Eine Objektvariable verweist auf einen Speicherbereich. Man sagt auch, dass eine Objektvariable ein Objekt referenziert, und spricht bei einer Objektvariablen von einer Objektreferenz oder einfach nur von einer Referenz. Tatsächlich ist unter einer Referenz ein Zeiger auf die Startadresse eines Speicherbereichs zu verstehen, der alle Zustandsdaten – das sind die Eigenschaften, die das Objekt von einem anderen Objekt desselben Typs unterscheidet – beschreibt.

Variablen, die auf ein Objekt verweisen, werden auch als Referenztypen bezeichnet. Im Gegensatz dazu kennt .NET auch die Wertetypen wie beispielsweise Int32 (C#-Alias = int) oder Int64 (C#-Alias = long).

Bei der Deklaration der Objektvariablen meinKreis wird der für das Objekt erforderliche Speicher reserviert, aber ein konkretes Objekt mit einer Zustandsausprägung durch Eigenschaften existiert schlichtweg noch nicht – die Objektvariable ist noch nicht initialisiert.

Zur Initialisierung einer Objektvariablen bieten sich zwei gleichwertige Alternativen an:

gp  die zweizeilige Variante:
Circle meinKreis;
meinKreis = new Circle();
gp  die verkürzte, einzeilige Schreibweise:
Circle meinKreis = new Circle();

Beide weisen ein gemeinsames Merkmal auf: den Operator new, der für die Konkretisierung eines Objekts verantwortlich ist. Erst mit new beginnt der Lebenslauf eines Objekts, denn nun wird der Konstruktor der Klasse aufgerufen – in diesem Fall der parameterlose Standardkonstruktor.

Sie können in einer Anweisung auch mehrere Objektvariablen desselben Typs deklarieren. Dazu werden die Objektvariablen hintereinander geschrieben und durch ein Komma voneinander getrennt:


Circle meinKreis1, meinKreis2, meinKreis3;

Auch die folgende Anweisung erlaubt der C#-Compiler:


Circle meinKreis1, meinKreis2, meinKreis3 = new Circle();

Allerdings wird nur die zuletzt angegebene Objektvariable meinKreis3 initialisiert. meinKreis1 und meinKreis2 gelten nur als deklariert und müssen zu einem späteren Zeitpunkt noch mit


meinKreis2 = new Circle();
meinKreis3 = new Circle();

initialisiert werden.


Galileo Computing

4.2.2 Zugriffsmodifizierer einer Klassdowntop

Entwickeln Sie eine neue Klasse, müssen Sie einem Umstand besondere Beachtung schenken: Entwerfen Sie die Klasse, um sie ausschließlich in der Anwendung zu verwenden, in der die Klasse definiert ist, oder beabsichtigen Sie, die Klasse auch anderen Anwendungen zur Verfügung zu stellen? Diese Sichtbarkeit wird durch Zugriffsmodifizierer beschrieben. Bei Klassen spielen nur zwei eine Rolle: public und internal.


Tabelle 4.1   Die Zugriffsmodifizierer einer Klasse

Modifizierer Beschreibung
public Die Instanziierbarkeit einer öffentlichen Klasse unterliegt keinerlei Beschränkungen. Die Klasse kann dann aus jeder beliebigen Anwendung heraus instanziiert werden.
internal Beabsichtigen Sie, die Sichtbarkeit einer Klasse auf die Anwendung zu beschränken, in der die Klasse definiert ist, müssen Sie die Klasse internal deklarieren. Aus einer anderen Anwendung heraus kann dann auch kein Objekt dieser Klasse erzeugt werden.

Die Angabe des Zugriffsmodifizierers ist optional. Verzichten Sie darauf, gilt die Klasse als internal.


Galileo Computing

4.2.3 Der Projekttyp »Klassenbibliothek«  downtop

Wir wollen nun die Auswirkungen der beiden Modifizierer public und internal an einem praktischen Beispiel erleben. Dabei werden Sie gleichzeitig mit zwei neuen Aspekten der Anwendungsentwicklung unter.NET vertraut gemacht:

gp  mit dem Projekttyp Klassenbibliothek
gp  mit dem Zugriff auf eine externe Assembly

Eine Klassenbibliothek wird zu einer DLL-Datei kompiliert und ist somit auch nicht eigenstartfähig. Versuchen Sie dennoch, das Projekt aus der Entwicklungsumgebung heraus zu starten, erhalten Sie eine Fehlermeldung. Sie können jedoch weiterhin über das Menü Erstellen kompilieren.

a
Achtung   Stellen Sie während der Entwicklungszeit fest, dass Sie sich für den falschen Projekttyp entschieden haben, können Sie diesen im Projekteigenschaftsfenster nachträglich ändern. Wählen Sie dazu in diesem Dialog die Einstellung Allgemein, und stellen Sie im Listenfeld Ausgabetyp den gewünschten Projekttyp ein.

Der Code des folgenden Beispiels gehört zu einer Klassenbibliothek und beschreibt die Klassen ClassA, ClassB und ClassC. Klasse ClassA ist public deklariert und sollte daher auch in anderen Anwendungen sichtbar und folglich instanziierbar sein. Der Zugriffsmodifizierer von ClassB ist internal Bisher war es nur möglich, eine Klassendefinition in einer Quellcodedatei zu implementieren, während ClassC auf jeglichen Zugriffsmodifizierer verzichtet.


// --------------------------------------------------------------
// Beispiel ...\Kapitel 4\LibraryDemo\MyClassLib
// --------------------------------------------------------------
using System;
namespace MyClassLib
{
  public class ClassA {
    public int PropA = 10;
  }
  internal class ClassB {
    public long PropB = 20;
  }
  class ClassC {
    public string str = "Hallo";
  }
}

Nach dem Kompilieren wird die DLL-Datei im Unterverzeichnis \bin\Debug des Projektverzeichnisses gespeichert.

Eine Klassenbibliothek dient dazu, anderen Anwendungen den Zugriff auf die öffentlichen Typen (= Klassen) zu ermöglichen. Das wollen wir nun durch eine Konsolenanwendung simulieren. Dazu bieten sich zwei Alternativen an:

gp  Sie öffnen ein neues Projekt in der Entwicklungsumgebung. Das erste Projekt (MyClassLib) wird dabei geschlossen.
gp  Sie fügen der Entwicklungsumgebung ein zweites Projekt hinzu. Das erste Projekt bleibt dabei geöffnet und kann sogar weiter bearbeitet werden.

Die erstgenannte Methode ist sehr einfach, daher wollen wir uns der zweiten zuwenden, bei der wir zudem tiefergehende Kenntnisse zur Entwicklung komplexerer Anwendungen mit dem Visual Studio erlangen.

Mehrere Projekte in einer Projektmappe verwalten

Bisher haben wir in der Entwicklungsumgebung immer nur mit einem Projekt gearbeitet. Das Visual Studio ermöglicht aber auch, mehrere Projekte gleichzeitig parallel zu bearbeiten. Verwaltet werden die einzelnen Projekte in einer Projektmappe, die damit die Aufgabe eines Containers innehat. Das Visual Studio generiert beim Erstellen eines neuen Projekts eine Projektmappe, die anschließend um praktisch beliebig viele, auch unterschiedliche Projekttypen erweitert werden kann. Damit erübrigt sich das mehrfache Öffnen des Visual Studios, wenn an mehreren Projekten gearbeitet werden soll. Die von einer Projektmappe verwalteten Projekte können, müssen aber nicht zwangsläufig in einem logischen Zusammenhang stehen.

Auch Projektmappen haben einen Bezeichner. Dieser wird vergeben, sobald Sie die Entwicklungsumgebung starten und ein neues Projekt erstellen. Der Standardbezeichner einer Projektmappe ist der des ersten Projekts, sollte allerdings insbesondere dann einen spezifischen Namen bekommen, wenn Sie wissen, dass Sie im Laufe der Entwicklungstätigkeit mindestens noch ein weiteres Projekt hinzufügen wollen. Im Dialog Neues Projekt können Sie die entsprechenden Einstellungen vornehmen. In Abbildung 4.5 ist zu erkennen, dass die Wahl auf ein Projekt des Typs Klassenbibliothek gefallen ist, der Bezeichner des Projekts MyClassLib und der der Projektmappe LibraryDemo lautet.

Abbildung
Hier klicken, um das Bild zu vergrößern

Abbildung 4.5   Der Dialog »Neues Element hinzufügen«

Um die Entwicklungsumgebung um ein weiteres Projekt zu ergänzen, müssen Sie im Projektmappen-Explorer den Knoten markieren, dessen Kontextmenü öffnen und Hinzufügen · Neues Projekt... auswählen. Es öffnet sich daraufhin ein Dialog, der alle Projekttypen zur Auswahl stellt. Wir wollen unsere oben begonnene Klassenbibliothek testen, deshalb fällt die Wahl auf Konsolenanwendung. Der Name des neuen Projekts sei LibraryTest.

Werfen wir nun einen Blick in den Projektmappen-Explorer. Das zweite Projekt ist jetzt ebenfalls eingetragen. Werden von einer Projektmappe mehrere Projekte verwaltet, kann nur eins davon beim Klicken der Schaltfläche Starten in der Symbolleiste des Visual Studios ausgeführt werden. Es ist immer das, dessen Projektbezeichner fett geschrieben ist. In der Abbildung 4.6 würde es sich demnach um das Projekt MyClassLib, also die Klassenbibliothek handeln. Die Einstellung ist nicht korrekt. Um ein anderes Projekt zum Startprojekt zu erklären, müssen Sie das Kontextmenü des entsprechenden Projekts öffnen und Als Startprojekt festlegen auswählen.

Abbildung
Hier klicken, um das Bild zu vergrößern

Abbildung 4.6   Projektmappen-Explorer, der zwei Projekte beherbergt

Physikalisch werden beide Projekte MyClassLib und LibraryTest als Unterordner der Projektmappe LibraryDemo gespeichert. In Letzterem sind zwei Dateien mit den Dateierweiterungen .SLN und .SUO zu finden. In der SLN-Datei sind die Daten enthalten, welche die Projektmappe definieren, in der SUO-Datei die Daten, mit denen die Entwicklungsumgebung entsprechend der ausgewählten Optionen angepasst wird.

Einbinden einer Klassenbibliothek

Das Projekt LibraryTest soll dazu dienen, die Klassenbibliothek MyClassLib zu testen. Allerdings ist LibraryTest die Existenz von MyClassLib nicht bekannt, wir müssen die Klassenbibliothek zunächst bekannt geben. Dazu dient der Knoten Verweise im Projektmappen-Explorer. Im Kontextmenü dieses Knotens wählen Sie Verweis hinzufügen... Daraufhin öffnet sich der in Abbildung 4.7 gezeigte Dialog mit den Registerkarten .NET, COM, Projekte, Durchsuchen und Aktuell. Am einfachsten ist es, Projekte auszuwählen, da in dieser Registerkarte die Projekte der aktuellen Projektmappe aufgeführt sind.


Hinweis   In Visual Studio 2002/2003 war nur der Verweis auf eine DLL-Datei möglich. Mit Visual Studio 2005 können nun auch Verweise auf EXE-Dateien gelegt werden.

Abbildung
Hier klicken, um das Bild zu vergrößern

Abbildung 4.7   Der Dialog »Verweis hinzufügen«

Damit sind der Testanwendung alle notwendigen Informationen bekannt, und es kann der folgende Code geschrieben werden:


// --------------------------------------------------------------
// Beispiele: ...\Kapitel 4\LibraryDemo\LibraryTest
// --------------------------------------------------------------
namespace LibraryTest {
  class Program {
    static void Main(string[] args) {
      // Instanziierung der Klasse ClassA
      MyClassLib.ClassA obj = new MyClassLib.ClassA();
      // dem Feld 'PropA' einen neuen Wert zuweisen
      obj.PropA = 4711;
      // Ausgabe des Feldes an der Konsole
      Console.WriteLine(obj.PropA);
      Console.ReadLine();
    }
  }
}

In Main wird ein Objekt vom Typ ClassA erzeugt. ClassA ist innerhalb des Namespaces MyClassLib definiert. Namespaces dienen dazu, die Eindeutigkeit von Klassennamen zu gewährleisten. Um auf eine Klasse zuzugreifen, muss vor dem Klassenbezeichner der Namespace angegeben werden. Beide werden durch einen Punkt voneinander getrennt.


MyClassLib.ClassA obj = new MyClassLib.ClassA();

Hätten wir mit


using MyClassLib;

den Namensbereich der Komponente vorher bekannt gegeben, hätte die Anweisung deutlich kürzer ausfallen können:


ClassA obj = new ClassA();

Zu dem Thema dieses Abschnitts, der Entwicklung einer Klassenbibliothek, sind wir gelangt, weil wir uns von der Wirkungsweise der Zugriffsmodifizierer überzeugen wollten. Wir sehen die Aussagen bestätigt, wenn wir die Liste der Intellisense-Unterstützung hinter der Namespace-Angabe MyClassLib beobachten. Hier wird nur ClassA aufgeführt, jedoch weder die internal deklarierte ClassB noch ClassC, der wir explizit keinen Zugriffsmodifizierer zugestanden haben (siehe Abbildung 4.8).

Abbildung
Hier klicken, um das Bild zu vergrößern

Abbildung 4.8   Intellisense-Unterstützung beim Zugriff auf eine externe Komponente

Die »Klassenansicht«

Wie oben erwähnt, darf jede Quellcodedatei mehrere Klassendefinitionen enthalten. Der Projektmappen-Explorer als Tool zur Verwaltung der projektbezogenen Dateien ist nicht in der Lage, die in einer Datei enthaltenen Klassendefinitionen anzuzeigen. Diese Aufgabe übernimmt die Klassenansicht, die darüber hinaus in einer hierarchischen Struktur alle Klassenmitglieder auflistet.

Die Klassenansicht ist in zwei Teilbereiche gegliedert. Im oberen sind die Typdefinitionen aufgeführt, zu denen nicht nur eine Klasse, sondern beispielsweise auch Strukturen, Enumerationen, Schnittstellen usw. gerechnet werden. Detailinformationen zu einer markierten Typdefinition werden im unteren Teilbereich angezeigt. In Abbildung 4.9 ist die Klasse Program ausgewählt. Diese enthält nur die Methode Main, deren Definition komplett angezeigt wird.

Vollständig implementierte Klassen können eine große Anzahl unterschiedlicher Mitglieder haben. Um eine bessere Übersicht zu erhalten, können Sie die Detailanzeige auf bestimmte Member reduzieren. Dazu klicken Sie in der Symbolleiste der Klassenansicht auf die Drop-down-Schaltfläche und wählen im Pull-down-Menü nur die Elemente aus, die für Sie von Interesse sind.

Abbildung
Hier klicken, um das Bild zu vergrößern

Abbildung 4.9   Die »Klassenansicht«


Galileo Computing

4.2.4 Splitten einer Klassendefinition mit »partial«  downtop

Bisher war es nur möglich, eine Klassendefinition in einer Quellcodedatei zu implementieren. Mit der Einführung des .NET-Frameworks 2.0 wird dem Entwickler die Möglichkeit geboten, eine Klassendefinition über mehrere Dateien zu splitten. Die neue Programmiertechnik erlaubt es mehreren Entwicklern, gleichzeitig an der gleichen Klassendefinition zu arbeiten. Ein weiterer Vorteil liegt in der impliziten Verwendung partieller Klassen durch die Entwicklungsumgebung, denn durch die Aufteilung des Klassencodes auf mehrere Dateien lässt sich der automatisch generierte Code der Entwicklungsumgebung von dem Quellcode des Entwicklers sauber trennen. Damit wird potenziellen Problemen vorgebeugt. Sie werden das erkennen, wenn wir uns mit den Windows-Anwendungen weiter hinten in diesem Buch beschäftigen.

Um eine Klasse zu splitten, muss dem Projekt zumindest eine weitere Quellcodedatei hinzugefügt werden. Sie erreichen das auf zwei verschiedenen Wegen:

gp  Öffnen Sie das Menü Projekt der Visual Studio-Entwicklungsumgebung, und wählen Sie dann Klasse hinzufügen..., oder
gp  Sie markieren im Projektmappen-Explorer das Projekt, öffnen dessen Kontextmenü und wählen ebenfalls Klasse hinzufügen... aus.

In beiden Fällen wird eine leere Klasse vorgegeben, dessen Typbezeichner Sie so abändern, dass die Klasse in beiden Quellcodedateien gleich lautet.

Partielle Klassendefinitionen werden durch die Ergänzung des Modifizierers partial vor allen Teildefinitionen gekennzeichnet. Die Signatur muss natürlich in jeder Teildefinition identisch sein. Nehmen wir beispielsweise an, Sie möchten die Klasse ClassA auf die beiden Dateien ClassA1.cs und ClassA2.cs aufteilen. Dann müssten die Klassendefinitionen wie folgt lauten:


// in der Quellcodedatei 'ClassA1.cs'
partial class ClassA {
  public int intX;
  ...
}
// in der Quellcodedatei 'ClassA2.cs'
partial class ClassA {
  public int intY;
  ...
}

Das Aufteilen von Typdefinitionen beschränkt sich nicht nur auf Klassen. Auch Strukturen und Interfaces, die Sie später noch kennen lernen, lassen sich auf diese Weise von mehreren Entwicklern simultan codieren. Eine Einschränkung des Gebrauchs partieller Typen müssen Sie jedoch beachten: Alle Klassenfragmente müssen sich in derselben Anwendung, also derselben EXE- oder DLL-Datei befinden.


Hinweis   Weitere Regeln im Zusammenhang mit partial erfahren Sie, wenn wir uns mit den weiteren Features der objektorientierten .NET-Programmierung beschäftigen.


Galileo Computing

4.2.5 Zusammenfassung  toptop

gp  Eine Klasse ist die Bauanleitung für Objekte eines bestimmten Typs. Ein Objekt wird durch Eigenschaften und Methoden beschrieben.
gp  Die Sichtbarkeit einer Klasse wird durch public und internal beschrieben. Fehlt die Angabe eines Zugriffsmodifizierers, gilt die Klasse als internal deklariert und ist nur im aktuellen Projekt bekannt.
gp  Objektvariablen werden mit dem Schlüsselwort new initialisiert und haben danach einen definierten Zustand. Bei der Instanziierung mit new wird eine Erstellungsroutine aufgerufen, die als Konstruktor bezeichnet wird.
gp  Klassen-, Struktur- und Interface-Definitionen können sich über mehrere Quellcodedateien verteilen. Das Schlüsselwort partial führt bei der Kompilierung die gesplitteten Definitionen zusammen.
 << zurück
  
  Zum Katalog
Zum Katalog: Visual C# 2005
Visual C# 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Visual Basic 2005






 Visual Basic 2005


Zum Katalog: Java ist auch eine Insel






 Java ist auch eine
 Insel


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de